-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
15-Redish03 #59
15-Redish03 #59
Conversation
μλμ κ°μ νΈλ¦¬κ° μλ€κ³ κ°μ ν΄λ³΄μ£ .
path[node] = true;
for (int i = 0; i < tree[node].size(); i++)
{
int nnode = tree[node][i].first; // firstμλ nodeμ μ°κ²°λ λ
Έλ
int ndist = tree[node][i].second; // secondμλ nodeμ μ°κ²°λ λ
Έλ μ¬μ΄μ κ±°λ¦¬κ° μ μ₯.
dfs(nnode, distance + ndist); // μ°κ²°λ λ
Έλμ κΈ°μ‘΄ 거리μ node - nnode μ¬μ΄μ 거리λ₯Ό λν΄μ μ¬κ· νΈμΆ
} μ΄ μ½λμμ forλ¬Έ λ°μμ λ°©λ¬Έ 체ν¬λ₯Ό νλ κ²μ΄ νμ¬ λ Έλλ₯Ό μμΉ νλ κ²μ΄κ³ , forλ¬Έμ΄ νμ¬ λ Έλμ μμ λ Έλ(μλΈ νΈλ¦¬)λ‘ λ€μ΄κ°λ κ³Όμ μ μλ―Έν©λλ€. κ·Έλ κΈ° λλ¬Έμ for (int i = 0; i < tree[node].size(); i++)
{
int nnode = tree[node][i].first;
int ndist = tree[node][i].second;
path[nnode] = true;
dfs(nnode, distance + ndist);
path[nnode] = false;
} μ κ°μ΄ λ°©λ¬Έ 체ν¬λ₯Ό νμ΄μ€ μ΄μ κ° μμ£ . κ΅³μ΄ μ½λλ₯Ό μμ νμλ©΄ void dfs(int node, int distance)
{
if (distance > max_dist)
{
max_dist = distance;
max_node = node;
}
for (int i = 0; i < tree[node].size(); i++)
{
int nnode = tree[node][i].first;
int ndist = tree[node][i].second;
if(path[nnode])
{
continue;
}
path[nnode] = true;
dfs(nnode, distance + ndist);
path[nnode] = false;
}
} μ΄λ κ² λκΈ΄ νλλ°, μ΄λ¬λ©΄ 1967 νΈλ¦¬μ μ§λ¦ μ¬κΈ° λκ°μ λ¬Έμ μμΌλ λ λ¨Ήνμλ©΄ λ©λλ€ ^________^ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ½λ μ λ΄€μ΅λλ€.
λ¬Έμ λ₯Ό ν λ dfsλ₯Ό μ¬μ©νμ
¨λλ° κ·Έ μ΄μ μ λν΄μ μ‘°κΈ λ μμΈνκ² μ€λͺ
ν΄μ£Όμ€ μ μμΌμ κ°μ? DFSλ μμ§λ μ‘°κΈ μμν κ² κ°λ€μ~ λ€μμ μλν΄ λ΄μΌκ² μ΄μ.
μκ²©μ¦ μ€λΉ νμ΄ν
νμΈμ!
μ°μ μ£Όμ΄μ§λ μλ£κ° νΈλ¦¬ννμ λλ€. λ°λΌμ κ΅ν©μ΄νμ΄ μμ 리뷰μ λ¬μ κ² κ³Ό κ°μ ννκ° λ©λλ€! μλ μ΄μ§ νΈλ¦¬μ ννμ΄μ§λ§, μ€μ λ‘λ λ Έλ λ°μ λ λ€μνκ² μ°κ²°λ λ Έλλ€μ΄ μμκ²λλ€. λ³΄ν΅ μ΄λ° νΈλ¦¬λ€μ λ€λ£° λλ BFS, λ€μ΅μ€νΈλΌ, DFS, νλ‘μ΄λ μμ λ±λ± λ€μν μκ³ λ¦¬μ¦μ΄ μμ§λ§... μ°λ¦¬μ λͺ©νλ μ΄λ ν μ§μ μμ μ΄λ ν μ§μ κΉμ§μ 거리μ μ΅λκ°μ ꡬνλκ² λͺ©νμ λλ€. κ·Έλ¬κΈ° μν΄μλ κ° μ μλ κ²½λ‘λ€μ νμν΄μ λͺ©μ μ§μΈ λ€λ₯Έ μ§μ κΉμ§ λμ°©μ νλ κ² λͺ©νμ λλ€. 1μ μ£Όμλ‘ νΌμ Έλκ°λ νμμΈ BFSκ° μλ, 1μμ λΆν° μμν΄μ μ€κ° λ Έλλ€μ κ±°μΉκ³ 2λ²κΉμ§μ 거리, 3λ²κΉμ§μ 거리, 4λ²κΉμ§μ 거리λ₯Ό ꡬνκ³ κ·Έ Nλ²λ ΈλκΉμ§μ 거리 μ€ κ°μ₯ ν° κ°μ ꡬνλ κ²μ λλ€. μ΄λ₯Ό μν΄μ μμ λ€μν μκ³ λ¦¬μ¦λ€ μ€μμ DFSκ° κ°μ₯ μ μ νλ€κ³ λ³Ό μ μμ΅λλ€. μ¬μ€ λΌμλ§μΆκΈ° μ μ€λͺ μ΄κΈ΄ νμ΅λλ€ νν κ·Έλμ λ¬Έμ λ₯Ό λ§μ΄ νμ΄λ³΄λκ² κ²°κ΅μλ μ€μν κ² κ°μμ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ½λ μ λ΄€μ΄μ~ κ³ μνμ
¨μ΅λλ€!
μ λ νΈλ¦¬κ° λ―μ€μ΄μ κ·Έλ°μ§ μ΄ν΄νλ €κ³ μ¬λ¬λ² μ½μ κ² κ°μμ. νμ€ν μ€ν°λ νλ©΄μ μ νΌμλΌλ©΄ μ νμ§ μμμ λΆμΌλ₯Ό λ§μ΄ μ νκ² λλ κ² κ°μ μ’μ΅λλ€. π μ λ μ dfsλ‘ νΈλ κ²μΈμ§ κΆκΈνλλ°, μ΄μλ μ½λ©νΈλ‘ μ 리λμ΄μ λ±ν λ λ릴 λ§μμ μλ€μ...νν
+) μκ²©μ¦ μ€λΉ νμ΄ν νμΈμ!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DFSλ‘ λ€μνκ² κ΅¬νν΄λ³΄λ€κ°, κ²°κ΅ μ±μ°λ νμ΄λ‘ νκ·νλ λ¬Έμ ...
https://www.acmicpc.net/board/view/83695
μ§λ¬Έ κ²μνμ μ½κ² μ€λͺ
λ κΈμ΄ μμ΄ κ°μ Έμμ΅λλ€.
μ§κ΄ λ―Έμ³£λ€,,, |
π λ¬Έμ λ§ν¬
νΈλ¦¬μ μ§λ¦
βοΈ μμλ μκ°
2h
β¨ μλ μ½λ
β λ¬Έμ μ΄ν΄
νΈλ¦¬μ μ§λ¦μ΄λ, νΈλ¦¬μμ μμμ λ μ μ¬μ΄μ 거리 μ€ κ°μ₯ κΈ΄ κ²μ λ§νλ€. νΈλ¦¬μ μ§λ¦μ ꡬνμ¬λΌ.
πΆ λ¬Έμ μ κ·Ό
νμ΄
<μ°κ²°λ λ Έλ, κ·Έ λ Έλμμ 거리>
κ° μ μ₯λμ΄μλ€. μ΄λ μλμ κ°λ€.path
μλ λ°©λ¬Έν μ μλ λ ΈλμΈμ§ νμΈν΄μ€λ€. μΈλ±μ€μ λ²νΈλ λ Έλμ λ²νΈκ° λλ€.max_node
λ₯Ό ꡬνκ³ , μ΄max_node
μμ λ€μ μμν΄ μ΄ μ μμ κ° λ Έλμ λν μ΅λ 거리λ₯Ό ꡬνλ€. κ·Έλ¬λ©΄ μμμ μ λ κ°λ₯Ό μ»μ μ μλ€. λ°λΌμ, DFSλ₯Ό 1->max_node, max_node -> ?λ‘ λ λ² λμμν€κ² λλ€.dfs
ν¨μλ μ΅λ 거리λ₯Ό max_distμ μ μ₯μν€κ³ , max_nodeλ₯Ό ꡬνλ€.π μλ‘κ² μκ²λ λ΄μ©
μ§λ¬Έ λ° μλ¬Έμ
골 2λμ μλ© μ«κ³ μμμ§λ§...μκ°λ³΄λ€ λ³κ±° μμμ§λ